package com.cac.demo.newCode.materialStorage.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * <p>
 * 库存事务流水表
 * </p>
 *
 * @author xz
 * @since 2024-08-27
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("WMS_ITEM_TRANSACTION")
public class WmsItemTransaction implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 库存流水ID
     */
    @TableId("WMS_ITEM_TRANSACTION_ID")
    private String wmsItemTransactionId;

    /**
     * 原始单据ID（入库单、出库单主表ID）
     */
    @TableField("ORIGINAL_ORDER_ID")
    private String originalOrderId;

    /**
     * 原始单据子表ID（入库单、出库单子表ID）
     */
    @TableField("ORIGINAL_ORDER_DETAIL_ID")
    private String originalOrderDetailId;

    /**
     * 台帐ID ^
     */
    @TableField("WMS_ITEM_INVENTORY_ID")
    private String wmsItemInventoryId;

    /**
     * 事务处理流水号 ^
     */
    @TableField("TRANSACTION_CODE")
    private String transactionCode;

    /**
     * 库存事务处理类型代码
     */
    @TableField("INV_TRANSACT_TYPE_CODE")
    private String invTransactTypeCode;

    /**
     * 物料编码
     */
    @TableField("ITEM_CODE")
    private String itemCode;

    /**
     * 质量编号 ^ 用于控制产品质量及性能的产品质量检验编号。0表示此物料不需要质量跟踪
     */
    @TableField("QUALITY_CODE")
    private String qualityCode;

    /**
     * 库存事务数量 ^ 单位为计量单位
     */
    @TableField("TRANSACTION_QTY")
    private BigDecimal transactionQty;

    /**
     * 事务前数量
     */
    @TableField("BEFORE_QTY")
    private BigDecimal beforeQty;

    /**
     * 事务后数量
     */
    @TableField("AFTER_QTY")
    private BigDecimal afterQty;

    /**
     * 事务日期 ^
     */
    @TableField("TRANSACTION_DATE")
    private Date transactionDate;

    /**
     * 机型编码
     */
    @TableField("PRODUCT_CODE")
    private String productCode;

    /**
     * 批次号
     */
    @TableField("BATCH_NO")
    private String batchNo;

    /**
     * 起始架次
     */
    @TableField("START_LOT_NO")
    private Integer startLotNo;

    /**
     * 截止架次
     */
    @TableField("END_LOT_NO")
    private Integer endLotNo;

    /**
     * 库房ID ^
     */
    @TableField("WMS_INVENTORY_ID")
    private String wmsInventoryId;

    /**
     * 库位ID ^
     */
    @TableField("WMS_LOCATOR_ID")
    private String wmsLocatorId;

    /**
     * 事务处理对冲标记 ^ 0非对冲事务，1对冲事务；
     */
    @TableField("BACK_FLAG")
    private String backFlag;

    /**
     * 对冲事务流水ID ^ 对于冲账与被冲的流水分别是对方的流水ID
     */
    @TableField("BACK_TRANSACTION_ID")
    private String backTransactionId;

    /**
     * 对冲事务流水号 ^ 对于冲账与被冲的流水分别是对方的流水号
     */
    @TableField("BACK_TRANSACTION_CODE")
    private String backTransactionCode;

    /**
     * 备注 ^
     */
    @TableField("REMARK")
    private String remark;

    /**
     * 创建人
     */
    @TableField("CREATED_BY")
    private String createdBy;

    /**
     * 创建时间
     */
    @TableField("CREATION_DATE")
    private Date creationDate;

    /**
     * 最后修改人
     */
    @TableField("LAST_UPDATED_BY")
    private String lastUpdatedBy;

    /**
     * 最后修改时间
     */
    @TableField("LAST_UPDATE_DATE")
    private Date lastUpdateDate;

    /**
     * 最后更新IP
     */
    @TableField("LAST_UPDATE_IP")
    private String lastUpdateIp;

    /**
     * 版本
     */
    @TableField("VERSION")
    private Long version;

    /**
     * 物料ID ^
     */
    @TableField("MDS_ITEM_ID")
    private String mdsItemId;

    /**
     * 成品父件ID ^
     */
    @TableField("PARENT_ITEM_ID")
    private String parentItemId;

    /**
     * 物料唯一标识号
     */
    @TableField("MDS_ITEM_UNIQUE_NO")
    private String mdsItemUniqueNo;

    /**
     * 库存事务类型代码 ^  WMS_INVENTORY_TRANSACTION ID
     */
    @TableField("WMS_INVENTORY_TRANSACTION_ID")
    private String wmsInventoryTransactionId;

    /**
     * 库存事务状态 ^ 0未登帐，1已登帐，4已撤销
     */
    @TableField("INV_TRANSACT_STATUS")
    private String invTransactStatus;

    /**
     * 产品机型ID；取自物料表MDS_ITEM_ID
     */
    @TableField("PRODUCT_ID")
    private String productId;

    /**
     * 任务号
     */
    @TableField("TASK_NO")
    private String taskNo;

    /**
     * 计划编号
     */
    @TableField("PLAN_NO")
    private String planNo;

    /**
     * 计划类型~ 1批产 2研制 3零星；取自业务字典MRP_SO_PLANTYPE
     */
    @TableField("PLAN_TYPE")
    private String planType;

    /**
     * 备件文件号
     */
    @TableField("SPARE_PART_FILE_NO")
    private String sparePartFileNo;

    /**
     * 是否打印业务单据的标记 ^ 0未打印，1已打印
     */
    @TableField("PRINT_FLAG")
    private String printFlag;

    /**
     * 退库类型^ 1余料退库，2工艺退库，3故障品退库
     */
    @TableField("RET_TYPE")
    private String retType;

    /**
     * 退库原因^
     */
    @TableField("RET_REASON")
    private String retReason;

    /**
     * 期初数量 ^
     */
    @TableField("INIT_QTY")
    private BigDecimal initQty;

    /**
     * 计量单位 ^
     */
    @TableField("MDS_UNIT_ID")
    private String mdsUnitId;

    /**
     * 附件代码 ^ 用于配套或成批出库
     */
    @TableField("ATTACHMENT_CODE")
    private String attachmentCode;

    /**
     * 工序号 ^
     */
    @TableField("MDS_OPERATION_SEQ_ID")
    private String mdsOperationSeqId;

    /**
     * 处理次序号 ^
     */
    @TableField("SERIAL_NO")
    private String serialNo;

    /**
     * 移库入库标记 ^  0 --未入; 1 --已入
     */
    @TableField("MOVE_IN_FLAG")
    private String moveInFlag;

    /**
     * 封装方式代码 ^现用于存放销售合同号
     */
    @TableField("ENVELOP_CODE")
    private String envelopCode;

    /**
     * 封装人 ^  引用Sys_User.id
     */
    @TableField("ENVELOP_SYS_USER_ID")
    private String envelopSysUserId;

    /**
     * 封装日期 ^
     */
    @TableField("ENVELOP_DATE")
    private Date envelopDate;

    /**
     * 出厂日期 ^
     */
    @TableField("OUT_FACTORY_DATE")
    private Date outFactoryDate;

    /**
     * 供应商 ^
     */
    @TableField("SRM_SUPPLY_ID")
    private String srmSupplyId;

    /**
     * 供方合格证号 ^ 供方合格证号或炉批号
     */
    @TableField("SUPPLY_REGULAR_NO")
    private String supplyRegularNo;

    /**
     * 炉号 ^ 
     */
    @TableField("SUPPLY_FURNACE_NO")
    private String supplyFurnaceNo;

    /**
     * 批号 ^ 
     */
    @TableField("SUPPLY_BATCH_NO")
    private String supplyBatchNo;

    /**
     * 客户
     */
    @TableField("CRM_CUSTOMER_ID")
    private String crmCustomerId;

    /**
     * 部门
     */
    @TableField("HR_DEPT_ID")
    private String hrDeptId;

    /**
     * 项目
     */
    @TableField("PM_PROJECT_ID")
    private String pmProjectId;

    /**
     * 合同号
     */
    @TableField("ORDER_NO")
    private String orderNo;

    /**
     * 发票号 ^　用在采购入库和销售出库
     */
    @TableField("INVOICE_NO")
    private String invoiceNo;

    /**
     * 开单人代码 ^ 引用Sys_User.id
     */
    @TableField("BILL_CREATOR")
    private String billCreator;

    /**
     * 开单日期 ^
     */
    @TableField("BILL_CREATE_DATE")
    private Date billCreateDate;

    /**
     * 审核人代码 ^ 引用Sys_User.id
     */
    @TableField("AUDITOR")
    private String auditor;

    /**
     * 审核日期 ^
     */
    @TableField("AUDIT_DATE")
    private Date auditDate;

    /**
     * 会计凭证号 ^ 对已作凭证的流水，纪录会计凭证号
     */
    @TableField("ACCOUNT_NO")
    private String accountNo;

    /**
     * 入库价 ^ 若是采购件,即与采购价相等.若是自制件,即等于完工实际成本.
     */
    @TableField("IN_PRICE")
    private BigDecimal inPrice;

    /**
     * 计划价格 ^  由企业自定义, 物料出库时可用于成本核算.
     */
    @TableField("PLAN_PRICE")
    private BigDecimal planPrice;

    /**
     * 实际价(不含税单价) ^ 暂估入库时为暂估入库价
     */
    @TableField("REAL_PRICE")
    private BigDecimal realPrice;

    /**
     * 移动平均价 ^ 按标准单位计算的移动平均价移动平均价格 = (当前库存总数量*当前永续价 + 本批入库数量*入库价) / (当前库存总数量 + 本批入库数量)
     */
    @TableField("MOVE_AVG_PRICE")
    private BigDecimal moveAvgPrice;

    /**
     * 先进先出单价 ^　
     */
    @TableField("FIFO_PRICE")
    private BigDecimal fifoPrice;

    /**
     * 后进先出单价 ^　
     */
    @TableField("LIFO_PRICE")
    private BigDecimal lifoPrice;

    /**
     * 月末加权平均单价 ^　
     */
    @TableField("MON_ADDON_VALUE_AVG_PRICE")
    private BigDecimal monAddonValueAvgPrice;

    /**
     * 个别认定单价 ^　
     */
    @TableField("SPECIFIC_PRICE")
    private BigDecimal specificPrice;

    /**
     * 标准成本价 ^
     */
    @TableField("STANDARD_PRICE")
    private BigDecimal standardPrice;

    /**
     * 实际总价(不含税总价) 计算汇总使用总价 ^ 暂估入库时为暂估入库总价
     */
    @TableField("REAL_TOTAL_PRICE")
    private BigDecimal realTotalPrice;

    /**
     * 税额=实际总价价(不含税总价)*税率 ^
     */
    @TableField("TAX")
    private BigDecimal tax;

    /**
     * 单据类型(财务核算时使用)
     */
    @TableField("BILL_TYPE")
    private String billType;

    /**
     * 自定义字段20  流水记录占用表id
     */
    @TableField("ATTRIBUTE20")
    private String attribute20;

    /**
     * 自定义字段19
     */
    @TableField("ATTRIBUTE19")
    private String attribute19;

    /**
     * 自定义字段18
     */
    @TableField("ATTRIBUTE18")
    private String attribute18;

    /**
     * 自定义字段17
     */
    @TableField("ATTRIBUTE17")
    private String attribute17;

    /**
     * 自定义字段16
     */
    @TableField("ATTRIBUTE16")
    private String attribute16;

    /**
     * 自定义字段15
     */
    @TableField("ATTRIBUTE15")
    private String attribute15;

    /**
     * 自定义字段14
     */
    @TableField("ATTRIBUTE14")
    private String attribute14;

    /**
     * 自定义字段13
     */
    @TableField("ATTRIBUTE13")
    private String attribute13;

    /**
     * 自定义字段12
     */
    @TableField("ATTRIBUTE12")
    private String attribute12;

    /**
     * 自定义字段11
     */
    @TableField("ATTRIBUTE11")
    private String attribute11;

    /**
     * 自定义字段10
     */
    @TableField("ATTRIBUTE10")
    private String attribute10;

    /**
     * 自定义字段9
     */
    @TableField("ATTRIBUTE9")
    private String attribute9;

    /**
     * 自定义字段8
     */
    @TableField("ATTRIBUTE8")
    private String attribute8;

    /**
     * 自定义字段7 allotmentQty 占用数量
     */
    @TableField("ATTRIBUTE7")
    private String attribute7;

    /**
     * 自定义字段6 applyQty 申请数量
     */
    @TableField("ATTRIBUTE6")
    private String attribute6;

    /**
     * 自定义字段5
     */
    @TableField("ATTRIBUTE5")
    private String attribute5;

    /**
     * 自定义字段4
     */
    @TableField("ATTRIBUTE4")
    private String attribute4;

    /**
     * 自定义字段3
     */
    @TableField("ATTRIBUTE3")
    private String attribute3;

    /**
     * 自定义字段2    140-立体库接收日期 yyyy-mm-dd
     */
    @TableField("ATTRIBUTE2")
    private String attribute2;

    /**
     * 自定义字段1  140-立体库接收标识 1-接收 空未接收
     */
    @TableField("ATTRIBUTE1")
    private String attribute1;

    /**
     * 弹性域上下文
     */
    @TableField("ATTRIBUTE_CATEGORY")
    private String attributeCategory;

    /**
     * ATTRIBUTE20描述
     */
    @TableField("ATTRIBUTE20_DESC")
    private String attribute20Desc;

    /**
     * ATTRIBUTE19描述
     */
    @TableField("ATTRIBUTE19_DESC")
    private String attribute19Desc;

    /**
     * ATTRIBUTE18描述
     */
    @TableField("ATTRIBUTE18_DESC")
    private String attribute18Desc;

    /**
     * ATTRIBUTE17描述
     */
    @TableField("ATTRIBUTE17_DESC")
    private String attribute17Desc;

    /**
     * ATTRIBUTE16描述
     */
    @TableField("ATTRIBUTE16_DESC")
    private String attribute16Desc;

    /**
     * ATTRIBUTE15描述
     */
    @TableField("ATTRIBUTE15_DESC")
    private String attribute15Desc;

    /**
     * ATTRIBUTE14描述
     */
    @TableField("ATTRIBUTE14_DESC")
    private String attribute14Desc;

    /**
     * ATTRIBUTE13描述
     */
    @TableField("ATTRIBUTE13_DESC")
    private String attribute13Desc;

    /**
     * ATTRIBUTE12描述
     */
    @TableField("ATTRIBUTE12_DESC")
    private String attribute12Desc;

    /**
     * ATTRIBUTE11描述
     */
    @TableField("ATTRIBUTE11_DESC")
    private String attribute11Desc;

    /**
     * ATTRIBUTE10描述
     */
    @TableField("ATTRIBUTE10_DESC")
    private String attribute10Desc;

    /**
     * ATTRIBUTE9描述
     */
    @TableField("ATTRIBUTE9_DESC")
    private String attribute9Desc;

    /**
     * ATTRIBUTE8描述
     */
    @TableField("ATTRIBUTE8_DESC")
    private String attribute8Desc;

    /**
     * ATTRIBUTE7描述
     */
    @TableField("ATTRIBUTE7_DESC")
    private String attribute7Desc;

    /**
     * ATTRIBUTE6描述
     */
    @TableField("ATTRIBUTE6_DESC")
    private String attribute6Desc;

    /**
     * ATTRIBUTE5描述
     */
    @TableField("ATTRIBUTE5_DESC")
    private String attribute5Desc;

    /**
     * ATTRIBUTE4描述
     */
    @TableField("ATTRIBUTE4_DESC")
    private String attribute4Desc;

    /**
     * ATTRIBUTE3描述/合格证号
     */
    @TableField("ATTRIBUTE3_DESC")
    private String attribute3Desc;

    /**
     * ATTRIBUTE2描述/ERP：ERP生成的流水，WMS：101分拣产生的流水
     */
    @TableField("ATTRIBUTE2_DESC")
    private String attribute2Desc;

    /**
     * ATTRIBUTE1描述,/IN：入库，OUT：出库
     */
    @TableField("ATTRIBUTE1_DESC")
    private String attribute1Desc;

    /**
     * 密级
     */
    @TableField("SECURITY_LEVEL")
    private BigDecimal securityLevel;

    /**
     * 材料试样消耗数
     */
    @TableField("MAT_TEST_QTY")
    private BigDecimal matTestQty;

    /**
     * 超大尺寸材料标记；Y是，N否
     */
    @TableField("BIG_SIZE_FLAG")
    private String bigSizeFlag;

    /**
     * 超大尺寸值；当BIG_SIZE_FALG为Y时生效
     */
    @TableField("BIG_SIZE_VALUE")
    private String bigSizeValue;

    /**
     * 比例
     */
    @TableField("PROPORTION")
    private String proportion;

    /**
     * 号文
     */
    @TableField("FILE_NO")
    private String fileNo;

    /**
     * 去向信息(试飞站用)
     */
    @TableField("DESTINATION")
    private String destination;

    /**
     * 批架次信息
     */
    @TableField("BATCHNOTE")
    private String batchnote;

    /**
     * 质量证明文件（合格证、履历本、无）--技服备件用
     */
    @TableField("QUALITY_TYPE")
    private String qualityType;

    /**
     * 备件订货ID--技服备件用
     */
    @TableField("IQS_TECH_DEPT_ORDER_ID")
    private String iqsTechDeptOrderId;

    /**
     * 备件订货编号--技服备件用
     */
    @TableField("IQS_TECH_DEPT_ORDER_NO")
    private String iqsTechDeptOrderNo;

    /**
     * AO清单出库时是否带证
     */
    @TableField("IS_PAPER")
    private String isPaper;

    /**
     * AO号
     */
    @TableField("AONO")
    private String aono;

    /**
     * 工艺分工，来源于生产计划
     */
    @TableField("ROUTE")
    private String route;

    /**
     * 运输箱号（试飞站用）
     */
    @TableField("TRANSPORT_BOX_NO")
    private String transportBoxNo;

    /**
     * 技术协议号，成品专用
     */
    @TableField("M_AGREEMENT_NUMBER")
    private String mAgreementNumber;

    /**
     * 成品型号
     */
    @TableField("M_PRODUCT_NUMBER")
    private String mProductNumber;

    /**
     * 成品父件型号
     */
    @TableField("M_PARENT_NUMBER")
    private String mParentNumber;

    /**
     * 所属单位ID ^ 分厂或者技术业务部门
     */
    @TableField("MDS_ORG_ID")
    private String mdsOrgId;

    /**
     * 单机数量
     */
    @TableField("ITEM_PLANE_QTY")
    private BigDecimal itemPlaneQty;

    /**
     * 接收日期
     */
    @TableField("RECEIVE_DATE")
    private Date receiveDate;

    /**
     * 接收人
     */
    @TableField("RECEIVE_USER_NAME")
    private String receiveUserName;

    /**
     * 接收部门
     */
    @TableField("RECEIVE_DEPT_NAME")
    private String receiveDeptName;

    /**
     * 成品型号名称
     */
    @TableField("M_PRODUCT_NAME")
    private String mProductName;

    /**
     * AO配套退库标识，标示是否已退库
     */
    @TableField("IS_BACK_FLAG")
    private String isBackFlag;

    @TableField("AO_SCRAP_NO")
    private String aoScrapNo;

    /**
     * 质量编号ID
     */
    @TableField("WMS_QUALITY_INFO_ID")
    private String wmsQualityInfoId;

    /**
     * 订单类型 ： 零星计划时候专用（停用）
     */
    @TableField("ORDER_TYPE")
    private String orderType;


}
